import axios from 'axios'
import { message } from 'antd'
import { setItem } from './common'
import store from './../store'
import * as types from './../store/actionTypes'
// import {getItem} from './common'
const isDev = process.env.NODE_ENV === 'development'

const request = axios.create({
  baseURL: isDev ? '' : 'http://www.mrswj.cn/api'
})

// 设置拦截器
// 请求拦截器  ----  所有的数据请求都需要先经过这个地方
request.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么 - 发送token - 头信息
  // console.log(getItem('token'))
  // config.headers.common.token = getItem('token')
  config.headers.common.token = store.getState().getIn(['admin', 'token'])
  
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
request.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  // console.log('response')
  if (response.data.code === '10119') {
    // console.log('token验证失败')
    // 修改状态管理器的值
    store.dispatch({
      type: types.CHANGE_LOGIN_STATE,
      payload: false
    })
    // 修改状态管理器的值
    setItem('loginState', false)
    message.warning('token验证失败，重新登录')
    setItem('currentpage', '/home')
    const pagesArr=JSON.stringify([{path:'/home',title:'系统首页',key:'0-0'}])
    setItem('tablepages',pagesArr)
  }
  return response
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error)
})

export default request